package cn.core.sign.service.intf;

import cn.core.sign.eo.Post;
import cn.core.sign.qo.PostQO;
import cn.core.sign.vo.PostVO;
import cn.core.tool.util.CoreTree;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 岗位 服务接口
 */
public interface IPostService {

  /**
   * 岗位 >>> 保存
   */
  public PostVO save(PostVO eo) throws Exception;

  /**
   * 岗位 >>> 批量保存
   */
  public Collection<Post> saveBatch(Collection<Post> eos) throws Exception;

  /**
   * 岗位 >>> 修改
   */
  public PostVO update(PostVO eo) throws Exception;

  /**
   * 岗位 >>> 批量修改
   */
  public Collection<Post> updateBatch(Collection<Post> eos) throws Exception;

  /**
   * 岗位 >>> 删除
   */
  public void remove(Post eo) throws Exception;

  /**
   * 岗位 >>> 批量删除
   */
  public void removeBatch(Collection<Post> eos) throws Exception;

  /**
   * 岗位 >>> 数据量
   */
  public Long count(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 主键查询
   */
  public Post pk(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 查询
   */
  public Collection<Post> query(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 分页
   */
  public Paging<Post> paging(Param<PostQO> param) throws Exception;

  /**
   * 岗位 >>> 业务数据量
   */
  public Long countVo(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 业务主键查询
   */
  public PostVO pkVo(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 业务查询
   */
  public Collection<PostVO> queryVo(PostQO qo) throws Exception;

  /**
   * 岗位 >>> 业务分页
   */
  public Paging<PostVO> pagingVo(Param<PostQO> param) throws Exception;

  /**
   * 岗位 >>> 组织机构岗位树
   */
  public CoreTree<?> getOrgPostTreeData(PostQO qo) throws Exception;

}
